const copyRandomList = (head) => {
  const wm = new WeakMap()
  const dfs = (node) => {
    if(node === null) return null
    if(wm.has(node)) return wm.get(node)
    let tnode = new _Node(node.val)
    tnode.next = dfs(node.next)
    tnode.random = dfs(node.random)
    return tnode
  }
  return dfs(head)
}